<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
        // 1 bind
        // function fn(a,b) {
        //     console.log(this)
        //     console.log(a+b)
        // }
        // var o = {
        //     name:"zd"
        // }
        // // bind不会调用函数,而是返回一个函数
        // var fn1 = fn.bind(o,2,3)
        // fn1()
        // 2 call
        // function fn(a,b) {
        //     console.log(this)
        //     console.log(a+b)
        // }
        // var o = {
        //     name:"zd"
        // }
        // fn.call(o,3,4)
        // 改变指向并调用函数
        function fn(a,b) {
            console.log(this)
            console.log(a+b)
        }
        var o = {
            name:"zd"
        }
        fn.apply(o,[3,4])
        // 总结:
        // bind不会调用函数,而是返回一个函数
        // call 改变指向并调用函数
        // apply改变this指向并调用函数,而且传递的参数必须用数组包裹
    </script>
</body>
</html>